package com.sky.mapper;

import com.sky.entity.ShoppingCart;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * @author 32338
 * @date 2024-04-20 20:20:01
 * @description
 */
@Mapper
public interface ShoppingCartMapper {

    /**
     * @description
     ***:动态条件查询
     **/
    List<ShoppingCart> list(ShoppingCart shoppingCart);

    /**
     * @description
     ***:根据id修改商品数量
     **/
    @Update("update shopping_cart set number = #{number} where id = #{id}")
    void updateById(ShoppingCart shoppingCart);

    /**
     * @description
     ***:插入购物车数据
     **/
    @Insert("insert into shopping_cart(name, user_id, dish_id, setmeal_id, dish_flavor,number, amount,image,create_time) " +
            "values (#{name},#{userId},#{dishId},#{setmealId},#{dishFlavor},#{number},#{amount},#{image},#{createTime}) ")
    void insert(ShoppingCart shoppingCart);

    /**
     * @description
     ***:根据用户id来删除购物车信息
     **/
    @Delete("delete from shopping_cart where user_id = #{userId}")
    void deleteByUserId(Long userId);

    /**
     * @description
     ***:根据菜品id来删除购物车信息
     **/
    @Delete("delete from shopping_cart where dish_id = #{dishId}")
    void deleteByDishId(Long dishId);

    /**
     * @description
     ***:根据套餐Id来删除购物车信息
     **/
    @Delete("delete from shopping_cart where setmeal_id = #{setmealId}")
    void deleteBySetmealId(Long setmealId);

    /**
     * @description
     ***:批量插入购物车数据
     **/
    void insertBatch(List<ShoppingCart> shoppingCartList);
}
